// 1.单独指定参数,返回值的类型
function add (num1: number, num2: number): number {
    return num1 + num2
}
console.log(add(1,3))


const add2 = (num1: number, num2: number): number => {
    return num1 + num2
}


//2.同时指定参数和返回值类型
// 解释: 当函数作为表达式时,可以通过类似箭头函数形式的语法来为函数添加类型
// 注意: 这种类型只适合用于函数表达式

const add3: (num1: number, num2: number) => number = (num1, num2) => {
    return num1 + num2
}


// 3.如果函数没有返回值,那么,函数返回值类型为 void
function greet(name: string): void {
    console.log(name)
}
greet('11111')

//4.可选参数函数
// 在可传可不传的参数后面加 ?
// 注: 可选参数只能在参数列表的最后,也就是说可选参数后面不能出现必选参数
function mySlice(start?: number, end?: number): void {
    console.log(`起始索引:${start},结束索引:${end}`)
}
mySlice()
mySlice(1)
mySlice(1,3)